home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / docs / Config-HOWTO < prev    next >
Text File  |  1997-11-17  |  33KB  |  1,027 lines

  1.   Configuration HOWTO
  2.   By Guido Gonzato, guido@ibogfs.cineca.it
  3.   v0.99.3, 4 November 1997
  4.  
  5.   This HOWTO aims at making the fine-tuning of your newly installed
  6.   Linux box quicker and easier. Here you will find a set of configura¡
  7.   tions for the most common applications, so you can start to work with
  8.   a well-usable system.
  9.  
  10.   1.  Introduction
  11.  
  12.   I have installed Linux on many PCs, and I've noted that current
  13.   distributions are terrific, but often come with annoying lack of basic
  14.   configuration. Most programs will work out of the box, but some won't.
  15.   This is a shame: I don't see any reason why the newcomer should bear
  16.   with the old and trite ``backspace problem'', or think that emacs
  17.   doesn't have colours, or list directories contents in black and white.
  18.  
  19.   To help myself remember what needs to be configured first, I wrote a
  20.   summary that I later expanded to become this HOWTO. Here you will find
  21.   a handful of configuration examples for the most common applications.
  22.   These examples are based on my personal experience installing Red Hat-
  23.   based Linux boxes, so if you use other distributions, be aware. Please
  24.   don't take any tips in this work as gospel: they just happen to work
  25.   for me. In any case, if you want to know more you'll have to read the
  26.   package docs and one of more HOWTOs on the subject. This HOWTO is just
  27.   a summary---hopefully, handy and useful.
  28.  
  29.   There can be endless hardware configurations for a PC, but in my
  30.   experience one is quite common: a PC fitted with a large HD split into
  31.   three partitions (one for DOS/Windows, one for Linux, one for the
  32.   swap), modem, CD-ROM drive, printer, mouse. This is the hardware I'll
  33.   assume you want to configure, but it's easy to adapt the following
  34.   tips to different configurations. It's implicitly assumed that you'll
  35.   be root when editing/fixing/hacking.
  36.  
  37.   And now, sleeves up.
  38.  
  39.   2.  General System Setup
  40.  
  41.   2.1.  Keyboard
  42.  
  43.   First of all, how to configure the keyboard. If you missed this step
  44.   during installation or have changed your keyboard, you'll have to:
  45.  
  46.   ╖  choose a suitable key table from /usr/lib/kbd/keytables/; for
  47.      example, it.map selects the Italian keyboard
  48.  
  49.   ╖  edit the file /etc/sysconfig/keyboard so as it reads:
  50.      KEYTABLE="/usr/lib/kbd/keytables/it.map"
  51.  
  52.   ╖  to set up the keyboard repeat rate and delay time, add this line to
  53.      /etc/profile or to one of your rc files :
  54.  
  55.        /sbin/kbdrate -s -r 16 -d 500  # or whatever
  56.  
  57.   ╖  and finally, do this to get the permission to set up the keyboard:
  58.  
  59.        ~# chmod 666 /dev/port
  60.  
  61.   Upon the next reboot, the keyboard will work fine.
  62.  
  63.   2.2.  Kernel
  64.  
  65.   IMHO, the first thing to do next is build a kernel that best suits
  66.   your system. It's very simple to do but, in any case, refer to the
  67.   README file in /usr/src/linux/. Hints:
  68.  
  69.   ╖  consider carefully what your needs are. It's more productive to
  70.      choose a suitable kernel and to apply patches once and for all,
  71.      instead of reconfiguring and recompiling each month; this is
  72.      especially true if your Linux box is a server. Don't forget to
  73.      include support for all the hardware you might likely add in the
  74.      future;
  75.  
  76.   ╖  if your PC is a Cyrix-based one, apply appropriate patches to
  77.      improve performance. Information on
  78.      http://www.linuxhq.com/patch/20-p0591.html;
  79.  
  80.   ╖  notebook users will want to improve legibility of their screen by
  81.      applying the noblink patch;
  82.  
  83.   ╖  again for notebook users, if you plan to use a PCMCIA modem/fax
  84.      don't compile serial support as a module; compile it in the kernel
  85.      or your PCMCIA modem won't work.
  86.  
  87.   2.3.  Bootup Messages
  88.  
  89.   If you want to customise the bootup messages, check whether your
  90.   /etc/rc.d/rc.local overwrites /etc/issue and /etc/motd. If so, get
  91.   your hands on your editor and go.
  92.  
  93.   2.4.  Hostname
  94.  
  95.   Issuing the command hostname new_host_name is not enough. Edit
  96.   /etc/sysconfig/network and change the hostname therein.
  97.  
  98.   2.5.  Sendmail Lock
  99.  
  100.   On some systems, sendmail locks the machine at boot time. Make sure
  101.   your /etc/hosts contains a line that reads
  102.  
  103.        127.0.0.1 localhost
  104.  
  105.   2.6.  Device Drivers
  106.  
  107.   Devices in /dev (or better, links to the actual device drivers) may be
  108.   missing. Check what devices your mouse, modem, and CD-ROM drive
  109.   correspond to, then do what follows:
  110.  
  111.        ~# cd /dev
  112.        /dev# ln -s /dev/cua0 mouse
  113.        /dev# ln -s /dev/cua1 modem
  114.        /dev# ln -s /dev/hdb cdrom
  115.  
  116.   and, if you want, do chmod 666 to these devices to make them fully
  117.   accessible by every user. Tip: in some laptops the mouse device is
  118.   /dev/psaux: take this into account also when configuring X11.
  119.  
  120.   In addition, you'll want to make the floppy accessible by non-root
  121.   users with chmod 666 /dev/fd*. This is bound to cause security
  122.   problems, but I don't know the details. Comments on this are welcome.
  123.  
  124.   2.7.  Mouse
  125.  
  126.   gpm mouse services are useful to perform cut and paste in console and
  127.   to use the mouse in some apps. Check that you have a file called
  128.   /etc/sysconfig/mouse and that it reads:
  129.  
  130.        MOUSETYPE="Microsoft"
  131.        XEMU3=yes
  132.  
  133.   Moreover, you must have a file /etc/rc.d/init.d/gpm. Of course, make
  134.   sure this configuration is right for your mouse type. Tip: in some
  135.   laptops, MOUSETYPE is ``PS/2''.
  136.  
  137.   2.8.  Mount Points
  138.  
  139.   It's handy to have mount points for the floppy, the CD-ROM, the DOS
  140.   partition, and other devices. For example, you may do the following:
  141.  
  142.        ~# cd /mnt
  143.        /# mkdir a: ; mkdir floppy ; mkdir cdrom ; mkdir win ; mkdir zip
  144.  
  145.   This creates mount points for an MS-DOS floppy, an ext2 floppy, the
  146.   CD-ROM, the DOS partition, and the parallel port Zip drive.
  147.  
  148.   Now edit the file /etc/fstab and add the following entries:
  149.  
  150.        /dev/fd0        /mnt/a:         msdos           user,noauto 0 1
  151.        /dev/fd0        /mnt/floppy     ext2            user,noauto 0 1
  152.        /dev/cdrom      /mnt/cdrom      iso9660         ro,user,noauto 0 1
  153.        /dev/hda1       /mnt/dos        msdos           user,noauto 0 1
  154.        /dev/sda4       /mnt/zip        vfat            user,noauto 0 1
  155.  
  156.   Obviously, you must use the correct device in the first field. To
  157.   access Win95 long names, use vfat instead of msdos in the last line.
  158.   This doesn't (yet) apply to vfat32, though.
  159.  
  160.   2.9.  LILO and Loadlin
  161.  
  162.   Many users want their PC to run both Linux and DOS/Windows, and want
  163.   to choose at boot time which os to use. Let's suppose that /dev/hda1
  164.   contains DOS/Windows and that /dev/hda2 contains Linux.
  165.  
  166.   Do what follows:
  167.  
  168.        ~# fdisk
  169.        Using /dev/hda as default device!
  170.  
  171.        Command (m for help):a
  172.        Partition number (1-4): 2
  173.  
  174.        Command (m for help):w
  175.        ~#
  176.  
  177.   This makes the Linux partition bootable; this step ought to be carried
  178.   out by activate when running LILO's QuickInst, but it won't work with
  179.   my Red Hat.
  180.  
  181.   Write this basic /etc/lilo.conf file:
  182.  
  183.        boot = /dev/hda2
  184.        compact
  185.        delay = 50
  186.        # message = /boot/bootmesg.txt  # write your own
  187.        root = current
  188.        image = /boot/vmlinuz
  189.          label = linux
  190.        other = /dev/hda1
  191.          table = /dev/hda
  192.          label = dos
  193.  
  194.   Now issue /sbin/lilo and you're set. Being LILO a crucial part of your
  195.   installation, you're strongly advised to read its documentation
  196.   anyway.
  197.  
  198.   To boot Linux from DOS without resetting, put LOADLIN.EXE in a
  199.   directory (in the DOS partition!) included in the DOS path; then copy
  200.   your kernel to, say, C:\DOS\VMLINUZ. The following .BAT file will boot
  201.   linux:
  202.  
  203.        rem   linux.bat
  204.        smartdrv /C
  205.        loadlin c:\dos\vmlinuz root=/dev/hda2 r
  206.  
  207.   I you use Windows 95, set the properties of this .BAT so as it starts
  208.   in MS-DOS mode.
  209.  
  210.   2.10.  Printer Configuration
  211.  
  212.   Red Hat has a fine configuration tool that worked wonderfully for my
  213.   HP DeskJet 400; if you don't use Red Hat, manual configuration
  214.   follows.
  215.  
  216.   Let's suppose you have a non-PostScript printer you want to use to
  217.   print raw text (e.g., C source files) and PostScript files via
  218.   GhostScript, which is assumed to be already installed.
  219.  
  220.   Setting up the printer involves a few steps:
  221.  
  222.   ╖  check which one the parallel print device is: try
  223.  
  224.        ~# echo "hello, world" > /dev/lp0
  225.        ~# echo "hello, world" > /dev/lp1
  226.  
  227.   and take note which one works.
  228.  
  229.   ╖  make two spool directories:
  230.  
  231.        ~# cd /var/spool/lpd
  232.        /var/spool/lpd/# mkdir raw ; mkdir postscript
  233.  
  234.   ╖  if your printer exibits the ``staircase effect'' (most inkjets do),
  235.      you'll need a filter. Try printing two lines with
  236.  
  237.   ~# echo "first line" > /dev/lp1 ; echo "second line" > /dev/lp1
  238.  
  239.   if the output is like
  240.  
  241.        first line
  242.                  second line
  243.  
  244.   then save this file as /var/spool/lpd/raw/filter:
  245.  
  246.        #!/bin/sh
  247.        # This filter does away with the "staircase effect"
  248.        awk '{print $0, "\r"}'
  249.  
  250.   and make it executable with chmod 755 /var/spool/lpd/raw/filter.
  251.  
  252.   ╖  make a filter for PostScript emulation. Write the following filter
  253.      as /var/spool/lpd/postscript/filter:
  254.  
  255.        #!/bin/sh
  256.  
  257.        DEVICE=djet500
  258.        RESOLUTION=300x300
  259.        PAPERSIZE=a4
  260.        SENDEOF=
  261.  
  262.        nenscript -TUS -ZB -p- |
  263.        if [ "$DEVICE" = "PostScript" ]; then
  264.                cat -
  265.        else
  266.                gs -q -sDEVICE=$DEVICE \
  267.                        -r$RESOLUTION \
  268.                        -sPAPERSIZE=$PAPERSIZE \
  269.                        -dNOPAUSE \
  270.                        -dSAFER \
  271.                        -sOutputFile=- -
  272.        fi
  273.  
  274.        if [ "$SENDEOF" != "" ]; then
  275.                printf "\004"
  276.        fi
  277.  
  278.   (in this example an HP DeskJet printer is assumed. Fix it to suit your
  279.   printer).
  280.  
  281.   ╖  finally, add the following entries in /etc/printcap:
  282.  
  283.        # /etc/printcap
  284.        lp|ps|PS|PostScript|djps:\
  285.                :sd=/var/spool/lpd/postscript:\
  286.                :mx#0:\
  287.                :lp=/dev/lp1:\
  288.                :if=/var/spool/lpd/postscript/filter:\
  289.                :sh:
  290.        raw:\
  291.                :sd=/var/spool/lpd/raw:\
  292.                :mx#0:\
  293.                :lp=/dev/lp1:\
  294.                :if=/var/spool/lpd/raw/filter:\
  295.                :sh:
  296.  
  297.   For more complex or exotic printing configurations, the Printing-HOWTO
  298.   awaits you.
  299.  
  300.   For Red hat users: be aware that the GSDEVICE chosen by Printtool will
  301.   work, but is not necessarily the best for your printer. You may
  302.   consider fiddling a bit with the file postscript.cfg; for instance, I
  303.   changed GSDEVICE from cdj500 to djet500 and now my prints come out
  304.   much quicker.
  305.  
  306.   3.  Software Configuration
  307.  
  308.   3.1.  bash(1)
  309.  
  310.   To tailor bash's behaviour, these are the files to edit:
  311.  
  312.   ╖  /etc/bashrc contains system wide aliases and functions;
  313.  
  314.   ╖  /etc/profile contains system wide environment stuff and startup
  315.      programs;
  316.  
  317.   ╖  $HOME/.bashrc contains user's aliases and functions;
  318.  
  319.   ╖  $HOME/.bash_profile contains user's environment stuff and startup
  320.      programs;
  321.  
  322.   ╖  $HOME/.bash_logout contains actions to be performed at logout;
  323.  
  324.   ╖  $HOME/.inputrc contains key bindings and other bits.
  325.  
  326.   Examples of these files are shown below. First, the most important:
  327.   /etc/profile. It's used to configure a lot of features in your Linux
  328.   box, as you will see in the following sections.
  329.  
  330.   ______________________________________________________________________
  331.   # /etc/profile
  332.  
  333.   # System wide environment and startup programs
  334.   # Functions and aliases go in /etc/bashrc
  335.  
  336.   # This file sets the following features:
  337.   #
  338.   #   o path
  339.   #   o prompts
  340.   #   o a few environment variables
  341.   #   o colour ls
  342.   #   o less behaviour
  343.   #   o keyboard settings
  344.   #
  345.   # Users can override these settings and/or add others in their
  346.   # $HOME/.bash_profile
  347.  
  348.   # set a decent path
  349.  
  350.   echo $PATH | grep X11R6 > /dev/null
  351.   if [ $? = 1 ] ; then   # add entries to the path
  352.     PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
  353.   fi
  354.  
  355.   # notify the user: login or non-login shell. If login, the prompt is
  356.   # coloured in blue; otherwise in magenta. Root's prompt is red.
  357.  
  358.   USER=`whoami`
  359.   if [ $LOGNAME = $USER ] ; then
  360.     COLOUR=44
  361.   else
  362.     COLOUR=45
  363.   fi
  364.  
  365.   if [ $USER = 'root' ] ; then
  366.     COLOUR=41
  367.   fi
  368.  
  369.   # put a real escape character instead of ^[
  370.   PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '
  371.   PS2="Continue> "
  372.  
  373.   # no core dumps, please
  374.  
  375.   ulimit -c 0
  376.  
  377.   # set umask
  378.  
  379.   if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
  380.           umask 002
  381.   else
  382.           umask 022
  383.   fi
  384.  
  385.   # a few variables
  386.  
  387.   USER=`id -un`
  388.   LOGNAME=$USER
  389.   MAIL="/var/spool/mail/$USER"
  390.   EDITOR=jed
  391.   HOSTNAME=`/bin/hostname`
  392.   HISTSIZE=1000
  393.   HISTFILESIZE=1000
  394.   export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME HISTSIZE HISTFILESIZE
  395.  
  396.   # enable colour ls
  397.  
  398.   eval `dircolors /etc/DIR_COLORS -b`
  399.   export LS_OPTIONS='-F -s -T 0 --color=tty'
  400.  
  401.   # customize less
  402.  
  403.   LESS='-M-Q'
  404.   LESSEDIT="%E ?lt+%lt. %f"
  405.   LESSOPEN="| lesspipe.sh %s"
  406.   VISUAL=jed
  407.   LESSCHARSET=latin1
  408.   export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
  409.  
  410.   # customise the keyboard
  411.  
  412.   /sbin/kbdrate -s -r 16 -d 500
  413.  
  414.   for i in /etc/profile.d/*.sh ; do
  415.           if [ -x $i ]; then
  416.                   . $i
  417.           fi
  418.   done
  419.   ______________________________________________________________________
  420.  
  421.   This is /etc/bashrc:
  422.  
  423.   ______________________________________________________________________
  424.   # /etc/bashrc
  425.  
  426.   # System wide functions and aliases
  427.   # Environment stuff goes in /etc/profile
  428.  
  429.   alias which="type -path"
  430.   alias d="ls"
  431.   alias dir="d"
  432.   ______________________________________________________________________
  433.  
  434.   This is .bashrc:
  435.  
  436.   ______________________________________________________________________
  437.   # $HOME/.bashrc
  438.   # Source global definitions
  439.  
  440.   if [ -f /etc/bashrc ]; then
  441.           . /etc/bashrc
  442.   fi
  443.  
  444.   # this is needed to notify the user that they are in non-login shell
  445.  
  446.   COLOUR=45
  447.   # put a real escape character instead of ^[
  448.   PS1='^[[$COLOUR;37m$USER:^[[37;40m\w\$ '
  449.  
  450.   # aliases
  451.  
  452.   alias cp='cp -i'
  453.   alias l=less
  454.   alias lyx='lyx -width 900 -height 700'
  455.   alias mv='mv -i'
  456.   alias rm='rm -i'
  457.   alias x=startx
  458.  
  459.   # A few useful functions
  460.  
  461.   inst() # Install a .tar.gz archive in the current directory.
  462.   { gzip -dc $1 | tar xvf - }
  463.  
  464.   cz() # List the contents of a .zip archive.
  465.   { unzip -l $* }
  466.  
  467.   ctgz() # List the contents of a .tar.gz archive.
  468.   {
  469.     for file in $* ; do
  470.       gzip -dc ${file} | tar tf -
  471.     done
  472.   }
  473.  
  474.   tgz() # Create a .tgz archive a la zip.
  475.   {
  476.     name=$1 ; tar -cvf $1 ; shift
  477.     tar -rf ${name} $*
  478.     gzip -S .tgz ${name}
  479.   }
  480.   ______________________________________________________________________
  481.  
  482.   This is .bash_profile:
  483.  
  484.   ______________________________________________________________________
  485.   # $HOME/.bash_profile
  486.  
  487.   # User specific environment and startup programs
  488.   # This file contains user-defined settings that override
  489.   # those in /etc/profile
  490.  
  491.   # Get aliases and functions
  492.   if [ -f ~/.bashrc ]; then
  493.           . ~/.bashrc
  494.   fi
  495.  
  496.   # re-get PS1 settings
  497.  
  498.   if [ $USER = 'root' ] ; then
  499.     COLOUR=41
  500.   else
  501.     COLOUR=44
  502.   fi
  503.  
  504.   # put a real escape character instead of ^[
  505.   PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '
  506.  
  507.   export PS1
  508.   ______________________________________________________________________
  509.  
  510.   This is .bash_logout:
  511.  
  512.   ______________________________________________________________________
  513.   # $HOME/.bash_logout
  514.   clear
  515.   ______________________________________________________________________
  516.  
  517.   This is .inputrc:
  518.  
  519.   ______________________________________________________________________
  520.   # $HOME/.inputrc
  521.  
  522.   # key bindings
  523.  
  524.   "\e[1~": beginning-of-line
  525.   "\e[3~": delete-char
  526.   "\e[4~": end-of-line
  527.   # (F1 .. F5) are "\e[[A" ... "\e[[E"
  528.   "\e[[A": "info \C-m"
  529.  
  530.   set bell-style visible         # please don't beep
  531.   set meta-flag On               # allow 8-bit input (i.e, accented letters)
  532.   set convert-meta Off           # don't strip 8-bit characters
  533.   set output-meta On             # display 8-bit characters correctly
  534.   set horizontal-scroll-mode On
  535.   set show-all-if-ambiguous On
  536.   ______________________________________________________________________
  537.  
  538.   To make the backspace and delete keys work correctly in in xterm and
  539.   other X11 applications, the following is also needed:
  540.  
  541.   ╖  put this in your .xinitrc:
  542.  
  543.        usermodmap=$HOME/.Xmodmap
  544.        xmodmap $usermodmap
  545.  
  546.   ╖  put this in your .Xmodmap:
  547.  
  548.        keycode 22 = BackSpace
  549.        keycode 107 = Delete
  550.  
  551.   this fixes the console. To fix xterm:
  552.  
  553.   ╖  put this in your .Xdefaults:
  554.  
  555.        xterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
  556.                <Key>Delete:        string(0x1b) string("[3~")\n\
  557.                <Key>Home:          string(0x1b) string("[1~")\n\
  558.                <Key>End:           string(0x1b) string("[4~")\n\
  559.                Ctrl<Key>Prior:     string(0x1b) string("[40~")\n\
  560.                Ctrl<Key>Next:      string(0x1b) string("[41~")
  561.  
  562.        nxterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
  563.                <Key>Delete:        string(0x1b) string("[3~")\n\
  564.                <Key>Home:          string(0x1b) string("[1~")\n\
  565.                <Key>End:           string(0x1b) string("[4~")\n\
  566.                Ctrl<Key>Prior:     string(0x1b) string("[40~")\n\
  567.                Ctrl<Key>Next:      string(0x1b) string("[41~")
  568.  
  569.   More info in bash(1) and readline(3) man pages.
  570.  
  571.   Don't expect every application to work correctly! If you run joe in
  572.   xterm, for instance, some keys won't work; the same goes for rxvt.
  573.   Rumour has it that it's a termcap problem.
  574.  
  575.   3.2.  ls(1)
  576.  
  577.   ls can display directory listings using colours to highlight different
  578.   file types. To enable this feature, add these lines to /etc/profile:
  579.  
  580.        eval `dircolors /etc/DIR_COLORS -b`
  581.        export LS_OPTIONS='-F -T 0 --color=tty'
  582.  
  583.   This sets the environment variable LS_COLORS that contains the colour
  584.   list set up in /etc/DIR_COLORS. Note: don't ask me why, but this won't
  585.   work with some versions of rxvt; use some flavour of xterm instead. It
  586.   looks like rxvt has a bug that prevents it from inheriting the
  587.   environment correctly in some circumstances.
  588.  
  589.   3.3.  less(1)
  590.  
  591.   With this excellent pager you can browse not only plain text files,
  592.   but also gzip compressed, tar and zip archives, man pages, and so on.
  593.   Its configuration involves a few steps:
  594.  
  595.   ╖  to use it with the movement keys, have this plain ASCII file
  596.      .lesskey in your home directory:
  597.  
  598.        ^[[A   back-line
  599.        ^[[B   forw-line
  600.        ^[[C   right-scroll
  601.        ^[[D   left-scroll
  602.        ^[OA   back-line
  603.        ^[OB   forw-line
  604.        ^[OC   right-scroll
  605.        ^[OD   left-scroll
  606.        ^[[6~  forw-scroll
  607.        ^[[5~  back-scroll
  608.        ^[[1~  goto-line
  609.        ^[[4~  goto-end
  610.        ^[[7~  goto-line
  611.        ^[[8~  goto-end
  612.  
  613.   then run the command lesskey. This creates a binary file .less con¡
  614.   taining the key bindings.
  615.  
  616.   ╖  write the following file as /usr/bin/lesspipe.sh:
  617.  
  618.      ___________________________________________________________________
  619.      #!/bin/sh
  620.      # This is a preprocessor for 'less'.  It is used when this environment
  621.      # variable is set:   LESSOPEN="|lesspipe.sh %s"
  622.  
  623.      lesspipe() {
  624.        case "$1" in
  625.        *.tar) tar tf $1 2>/dev/null ;; # View contents of .tar and .tgz files
  626.        *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;;
  627.        *.Z|*.z|*.gz) gzip -dc $1  2>/dev/null ;; # View compressed files correctly
  628.        *.zip) unzip -l $1 2>/dev/null ;; # View archives
  629.        *.arj) unarj -l $1 2>/dev/null ;;
  630.        *.rpm) rpm -q -p -i -l $1 2>/dev/null ;;
  631.        *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1`
  632.          FILE=`echo $FILE | cut -d ' ' -f 2`
  633.          if [ "$FILE" = "troff" ]; then
  634.            groff -s -p -t -e -Tascii -mandoc $1
  635.          fi ;;
  636.        *) FILE=`file -L $1` ; # Check to see if binary
  637.          FILE1=`echo $FILE | cut -d ' ' -f 2`
  638.          FILE2=`echo $FILE | cut -d ' ' -f 3`
  639.          if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
  640.               -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
  641.            strings $1
  642.          fi ;;
  643.        esac
  644.      }
  645.  
  646.      lesspipe $1
  647.      ___________________________________________________________________
  648.  
  649.   and remember to make it executable with chmod 755 lesspipe.sh.
  650.  
  651.   ╖  put these lines in /etc/profile:
  652.  
  653.        LESS="-M-Q"                     # long prompt, silent
  654.        LESSEDIT="%E ?lt+%lt. %f"       # edit top line
  655.        LESSOPEN="| lesspipe.sh %s"     # filter
  656.        VISUAL=jed                      # default editor---insert your favourite
  657.        LESSCHARSET=latin1              # display accented letters if needed
  658.        export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
  659.  
  660.   The variable LESSCHARSET depends on the fact that I live in Italy and
  661.   want to use the ISO 8859/1 character set. You fellow Americans,
  662.   Japanese, Russians and so on had better not set it.
  663.  
  664.   3.4.  emacs(1)
  665.  
  666.   Some emacs distributions don't come preconfigured for colours and
  667.   syntax highlighting. Write this in your .emacs:
  668.  
  669.        (global-font-lock-mode t)
  670.        (setq font-lock-maximum-decoration t)
  671.  
  672.   This only works in X11. I'll leave it to you to peruse all of emacs'
  673.   documentation to discover how to tailor it to your
  674.   needs---potentially, it can take months of hacking...
  675.  
  676.   3.5.  joe(1)
  677.  
  678.   Check in /usr/bin/ whether jmacs, jstar, and jpico are symlinks to joe
  679.   or standalone binaries; in the latter case, you may turn them to
  680.   symlinks to save some disk space:
  681.  
  682.        ~# cd /usr/bin
  683.        /usr/bin# ln -sf joe jmacs ; ln -sf joe jstar ; ln -sf joe jpico
  684.  
  685.   Then, all you have to do is copy /usr/lib/joe/joerc to your home dir
  686.   as .joerc and tailor it.
  687.  
  688.   3.6.  jed
  689.  
  690.   This is my favourite editor: it does what I need, it's lighter and
  691.   easier to configure than emacs, and IMHO emulates other editors quite
  692.   better.  Many users at my university want jed to emulate EDT, VMS'
  693.   system editor.
  694.  
  695.   The configuration files are .jedrc and /usr/lib/jed/lib/*; the former
  696.   can be adapted from jed.rc in the latter directory.
  697.  
  698.   ╖  to make jed use some keys correctly, create
  699.      /usr/lib/jed/lib/defaults.sl whose only line reads:
  700.  
  701.        () = evalfile("linux");
  702.  
  703.   ╖  edit /usr/lib/jed/lib/linux.sl; remove the comment from the line
  704.      that reads Info_Directory = "/usr/info"; and add /bin/mail after
  705.      UCB_Mailer =;
  706.  
  707.   ╖  configuring jed to make it emulate EDT (or other editors) is
  708.      straightforward: you just have to edit a couple of lines in .jedrc.
  709.      If you want to use the numeric keypad `+' to delete words instead
  710.      of a single character, add this in .jedrc:
  711.  
  712.        unsetkey("\eOl");
  713.        unsetkey("\eOP\eOl");
  714.        setkey("edt_wdel", "\eOl");
  715.        setkey("edt_uwdel", "\eOP\eOl");
  716.  
  717.   after the line that reads () = evalfile("edt");.
  718.  
  719.   ╖  making xjed use the numeric keypad for EDT emulation requires
  720.      inserting the following in .Xmodmap:
  721.  
  722.        keycode 77  = KP_F1
  723.        keycode 112 = KP_F2
  724.        keycode 63  = KP_F3
  725.        keycode 82  = KP_F4
  726.        keycode 86  = KP_Separator
  727.  
  728.   Moreover, make sure that your /etc/X11/XF86Config contains the follow¡
  729.   ing lines:
  730.  
  731.        #    ServerNumLock  # must be commented out
  732.            XkbDisable
  733.  
  734.   This applies to XFree 3.2. Unless you use a standard American keyboard
  735.   though, note that ``XkbDisable'' brings some little problems. You'll
  736.   find out by yourself.
  737.  
  738.   ╖  colour customization for xjed is done adding lines like these in
  739.      .Xdefaults:
  740.  
  741.        xjed*Geometry: 80x32+150+50
  742.        xjed*font: 10x20
  743.        xjed*background: midnight blue
  744.  
  745.   More info in xjed.doc, included in the package.
  746.  
  747.   3.7.  TeX and Friends
  748.  
  749.   I'll assume you have the TeTeX distribution. Just a couple of things
  750.   here:
  751.  
  752.   ╖  To configure the hyphenation pattern for your language, edit the
  753.      file /usr/lib/texmf/texmf/tex/generic/config/language.dat, then do:
  754.  
  755.        ~# texconfig init ; texconfig hyphen
  756.  
  757.   ╖  If you add a LaTeX package, after adding the files under
  758.      /usr/lib/texmf/texmf/tex/latex/ run the command texhash to make
  759.      TeTeX recognise the new package.
  760.  
  761.   ╖  To tailor dvips, the file to edit is
  762.      /usr/lib/texmf/texmf/dvips/config/config.ps. Be aware that the
  763.      fields regarding the default resolution also affect xdvi's
  764.      behaviour; if you experience annoying attempts to create fonts each
  765.      time you run it, put in .Xdefault the line
  766.  
  767.        XDvi*mfmode:
  768.  
  769.   This should help.
  770.  
  771.   3.8.  PPP
  772.  
  773.   I'll take it for granted that your kernel has PPP + TCP/IP support
  774.   compiled in, that loopback is enabled, and that you already have the
  775.   pppd package correctly installed. (These requirements should be there
  776.   by default.) There are now two ways to get PPP to work: a) manual
  777.   configuration, and b) using a program that automagically sees to it.
  778.   First, the manual option.
  779.  
  780.   Let's suppose that your ISP's specifications are the following:
  781.  
  782.   ╖  Phone number: 1234567
  783.  
  784.   ╖  Name server: 123.231.112.111
  785.  
  786.   ╖  Mail server: mbox.supernet.edu
  787.  
  788.   ╖  Domain: supernet.edu
  789.  
  790.   ╖  Remote hostname: www.supernet.edu
  791.  
  792.   ╖  Your username: John
  793.  
  794.   ╖  Your password: _Loo%ny
  795.  
  796.   To configure manually your PPP connections, you'll do:
  797.  
  798.   ╖  write this file /usr/local/bin/ppp-on, which will be used to
  799.      connect to your ISP:
  800.  
  801.        #!/bin/sh
  802.        # ppp-on: script to connect to an ISP
  803.        INIT=ATX3  # or whatever your modem wants
  804.        PHONE=1234567
  805.        /usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDP$PHONE \
  806.        CONNECT '' " user John
  807.  
  808.   then make it executable with chmod 755 /usr/local/bin/ppp-on. If your
  809.   ISP doesn't use the PAP protocol, the following script applies:
  810.  
  811.        #!/bin/sh
  812.        # ppp-on: script to connect to an ISP
  813.        INIT=atx3  # or whatever your modem wants
  814.        PHONE=1234567
  815.        /usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDT$PHONE \
  816.        CONNECT '' 'ogin' John 'word' _Loo%ny ''" /dev/modem 38400 \
  817.        modem defaultroute
  818.  
  819.   ╖  write this file /usr/local/bin/ppp-off, used to terminate a ppp
  820.      session:
  821.  
  822.        #!/bin/sh
  823.        # ppp-off
  824.        DEVICE=ppp0
  825.        if [ -r /var/run/$DEVICE.pid ]; then
  826.          kill -INT `cat /var/run/$DEVICE.pid`
  827.          if [ ! "$?" = "0" ]; then
  828.            echo "removing stale $DEVICE pid file."
  829.            rm -f /var/run/$DEVICE.pid ; exit 1
  830.          fi
  831.          echo "$DEVICE link terminated" ; exit 0
  832.        fi
  833.        # link not active
  834.        echo "$DEVICE link is not active" ; exit 1
  835.  
  836.   then make it executable with chmod 755 /usr/local/bin/ppp-off.
  837.  
  838.   ╖  write this file /etc/ppp/options:
  839.  
  840.        # /etc/ppp/options
  841.        /dev/modem
  842.        38400
  843.        lock
  844.        crtscts
  845.        modem
  846.        asyncmap 0
  847.        remotename www.supernet.edu
  848.        defaultroute
  849.  
  850.   ╖  if your ISP uses the PAP protocol (most ISPs do), write the file
  851.      /etc/ppp/pap-secrets:
  852.  
  853.   # /etc/ppp/pap-secrets
  854.   # username     remotehost           secret
  855.   John           www.supernet.edu     _Loo%ny
  856.  
  857.   ╖  edit /etc/resolv.conf:
  858.  
  859.        # /etc/resolv.conf
  860.        search supernet.edu
  861.        nameserver 123.231.112.111
  862.  
  863.   ╖  edit /etc/sendmail.cf. Look for the line starting with DS, and make
  864.      it like the following:
  865.  
  866.        DSmbox.supernet.edu
  867.  
  868.   Phew! If you're lucky, this should work. Otherwise, be prepared to
  869.   study the PPP-HOWTO.
  870.  
  871.   So much for manual configuration. There's a fine package that makes
  872.   all this drudgery a thing of the past, though: it's called ezppp and
  873.   you'll find it at  http://www.serv.net/~cameron/ezppp/index.html .
  874.   Download it at once.
  875.  
  876.   3.9.  POP Client
  877.  
  878.   To retrieve your mail from a POP server, use a POP client like
  879.   fetchpop or fetchmail. The latter is probably the only option if your
  880.   provider's PPP server has problems with the command LAST.
  881.  
  882.   To configure these clients:
  883.  
  884.   ╖  fetchpop: the first time you run it, you'll be prompted for some
  885.      information. Answer the questions and you're set.
  886.  
  887.   ╖  fetchmail: adapt this sample .fetchmailrc:
  888.  
  889.        # $HOME/.fetchmailrc
  890.        poll mbox.supernet.edu with protocol pop3;
  891.          user john there with password _Loo%ny is john here
  892.          mda "/usr/bin/procmail -f fetchmail"
  893.  
  894.   The last line may not be required. You must set the permissions to
  895.   this file with the command chmod 600 .fetchmailrc, otherwise fetchmail
  896.   will rightly refuse to start.
  897.  
  898.   3.10.  X Window System
  899.  
  900.   Once you've managed to make X work (right video card etc.), there are
  901.   endless possibilities of configuration; it depends on the window
  902.   manager you use. In any case, it's all down to editing one or more
  903.   ASCII files in your home directory. As for the window manager:
  904.  
  905.   ╖  fvwm: copy /etc/X11/fvwm/system.fvwmrc to your home directory as
  906.      .fvwmrc, browse it and start experimenting. This contributed
  907.      system.fvwmrc is IMHO a wee bit too simple and doesn't do justice
  908.      to fvwm.
  909.  
  910.   ╖  fvwm95-2: copy /etc/X11/fvwm95-2/fvwm2rc95 to your home as
  911.      .fvwm2rc95, then edit it. The contributed example is quite good.
  912.  
  913.   ╖  TheNextLevel: this is rather harder to configure. Copy
  914.      /etc/X11/TheNextLevel/.* to your home dir, browse them carefully,
  915.      then try and tailor them. The first one to look at is
  916.      .fvwm2rc.defines.
  917.  
  918.   In addition, be sure you have a proper .xinitrc. An example:
  919.  
  920.        #!/bin/sh
  921.  
  922.        # $HOME/.xinitrc
  923.  
  924.        # set a few keys correctly
  925.  
  926.        usermodmap=$HOME/.Xmodmap
  927.        xmodmap $usermodmap
  928.  
  929.        xset s noblank  # turn off the screen saver
  930.        xset s 300 2    # screen saver start after 5 min
  931.        xsetroot -solid "medium blue" &
  932.  
  933.        # rxvt saves memory, but has a few bugs:
  934.        #   - home and end keys are not recognised;
  935.        #   - backspace and delete don't work as in console;
  936.        #   - colours are not properly inherited by the environment;
  937.        #   - problems with the environment in general;
  938.        # xterm is therefore better in many cases. However, rxvt is best
  939.        # for running some colour apps like mc.
  940.  
  941.        xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
  942.        -title "Color xterm" -geometry 80x25+150+0 &
  943.  
  944.        fvwm95-2
  945.  
  946.   3.11.  Fortran
  947.  
  948.   In my experience, if you need Fortran a good alternative to g77 is the
  949.   Fortran-to-C translator f2c and the front-end yaf77.
  950.  
  951.   Get yaf77 from
  952.   ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran/yaf77-1.4.tgz
  953.   and its mirrors.
  954.  
  955.   3.12.  Users' Configurations
  956.  
  957.   It's a good idea to let new users have a few configuration files ready
  958.   when they first log in. Put the following files in /etc/skel: bashrc,
  959.   bash_profile, bash_logout, inputrc, less, xinitrc, fvwmrc, fvwm2rc95,
  960.   Xmodmap, Xdefaults, jedrc, joerc, emacs.
  961.  
  962.   (Note: due to formatting problems, I had to remove the leading dot
  963.   (`.')  from each of these files.)
  964.  
  965.   Note that .pinerc can't be fully tailored; make sure that at least the
  966.   fields user-domain, smtp-server, and nntp-server are set up.
  967.  
  968.   4.  The End
  969.  
  970.   4.1.  Copyright
  971.  
  972.   Unless otherwise stated, Linux HOWTO documents are copyrighted by
  973.   their respective authors. Linux HOWTO documents may be reproduced and
  974.   distributed in whole or in part, in any medium physical or electronic,
  975.   as long as this copyright notice is retained on all copies. Commercial
  976.   redistribution is allowed and encouraged; however, the author would
  977.   like to be notified of any such distributions.
  978.  
  979.   All translations, derivative works, or aggregate works incorporating
  980.   any Linux HOWTO documents must be covered under this copyright notice.
  981.   That is, you may not produce a derivative work from a HOWTO and impose
  982.   additional restrictions on its distribution. Exceptions to these rules
  983.   may be granted under certain conditions; please contact the Linux
  984.   HOWTO coordinator at the address given below.
  985.  
  986.   In short, we wish to promote dissemination of this information through
  987.   as many channels as possible. However, we do wish to retain copyright
  988.   on the HOWTO documents, and would like to be notified of any plans to
  989.   redistribute the HOWTOs.
  990.  
  991.   If you have questions, please contact Greg Hankins, the Linux HOWTO
  992.   coordinator, at gregh@sunsite.unc.edu via email.
  993.  
  994.   4.2.  Feedback
  995.  
  996.   Perhaps even more than other HOWTOs, this one needs and welcomes your
  997.   suggestions, criticisms, and contributions. Not only is feedback
  998.   welcome: it's necessary. If you think something is missing here,
  999.   please email me. If you have a distribution other than Red Hat and
  1000.   your config files are different or placed in other directories, please
  1001.   tell me and I'll include your tips. My aim is making life with Linux
  1002.   as easy as possible.
  1003.  
  1004.   Linux has a huge number of packages, so it's impossible to include
  1005.   directions for all of them. Please keep your requests/suggestions
  1006.   pertinent to the ``most reasonable'' programs---I'll leave it to your
  1007.   common sense.
  1008.  
  1009.   4.3.  Disclaimer
  1010.  
  1011.   ``Configuration HOWTO'' was written by Guido Gonzato,
  1012.   guido@ibogfs.cineca.it.  Many thanks to all other HOWTO authors and
  1013.   man pages writers/maintainers, whose work I've cheeklessly pilfered.
  1014.  
  1015.   This document is provided ``as is''. I put great effort into writing
  1016.   it as accurately as I could, but you use the information contained in
  1017.   it at your own risk. In no event shall I be liable for any damages
  1018.   resulting from the use of this work.
  1019.  
  1020.   I hope you'll find this work useful. Whenever I install a new Linux
  1021.   box, I actually do...
  1022.  
  1023.   Enjoy,
  1024.  
  1025.   Guido   =8-)
  1026.  
  1027.